package com.swanclouds.redfish.managers.domain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.swanclouds.model.DeviceEntity;
import java.util.Map;

public class SnmpServiceModel implements DeviceEntity {
    //SNMP服务资源的访问路径
    @JsonProperty("@odata.id")
    private String dataId;

    //SNMP服务资源模型的OData描述信息
    @JsonProperty("@odata.context")
    private String context;

    //SNMP服务资源的类型
    @JsonProperty("@odata.type")
    private String type;

    //SNMP服务资源的ID
    @JsonProperty("Id")
    private String id;

    //SNMP服务资源的名称
    @JsonProperty("Name")
    private String name;

    @JsonProperty("MemberId")
    private Integer memberId;

    //SNMP V1使能状态
    @JsonProperty("SnmpV1Enabled")
    private String snmpV1Enabled;

    //SNMP V2使能状态
    @JsonProperty("SnmpV2CEnabled")
    private String snmpV2CEnabled;

    //SNMP V3使能状态
    @JsonProperty("SnmpV3Enabled")
    private String snmpV3Enabled;

    //超长口令使能状态
    @JsonProperty("LongPasswordEnabled")
    private String longPasswordEnabled;

    //只读团体名
    @JsonProperty("ReadOnlyCommunity")
    private String readOnlyCommunity;

    //读写团体名
    @JsonProperty("ReadWriteCommunity")
    private String readWriteCommunity;

    //SNMP V3身份验证协议
    @JsonProperty("SnmpV3AuthProtocol")
    private String snmpV3AuthProtocol;

    //SNMP V3隐私协议
    @JsonProperty("SnmpV3PrivProtocol")
    private String snmpV3PrivProtocol;

    //SNMP Trap信息
    @JsonProperty("SnmpTrapNotification")
    private Map<String,Object> snmpTrapNotification;

     //SNMP服务资源可执行操作
    @JsonProperty("Actions")
    private Map<String,Object> actions;

    //资源链接
    @JsonProperty("Likes")
    private Map<String,Object> likes;



    public void setDataId(String dataId) {
        this.dataId = dataId;
    }

    public void setContext(String context) {
        this.context = context;
    }

    public void setType(String type) {
        this.type = type;
    }

    public void setId(String id) {
        this.id = id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSnmpV1Enabled() {
        return snmpV1Enabled;
    }

    public void setSnmpV1Enabled(String snmpV1Enabled) {
        this.snmpV1Enabled = snmpV1Enabled;
    }

    public String getSnmpV2CEnabled() {
        return snmpV2CEnabled;
    }

    public void setSnmpV2CEnabled(String snmpV2CEnabled) {
        this.snmpV2CEnabled = snmpV2CEnabled;
    }

    public String getSnmpV3Enabled() {
        return snmpV3Enabled;
    }

    public void setSnmpV3Enabled(String snmpV3Enabled) {
        this.snmpV3Enabled = snmpV3Enabled;
    }

    public String getLongPasswordEnabled() {
        return longPasswordEnabled;
    }

    public void setLongPasswordEnabled(String longPasswordEnabled) {
        this.longPasswordEnabled = longPasswordEnabled;
    }

    public String getReadOnlyCommunity() {
        return readOnlyCommunity;
    }

    public void setReadOnlyCommunity(String readOnlyCommunity) {
        this.readOnlyCommunity = readOnlyCommunity;
    }

    public String getReadWriteCommunity() {
        return readWriteCommunity;
    }

    public void setReadWriteCommunity(String readWriteCommunity) {
        this.readWriteCommunity = readWriteCommunity;
    }

    public String getSnmpV3AuthProtocol() {
        return snmpV3AuthProtocol;
    }

    public void setSnmpV3AuthProtocol(String snmpV3AuthProtocol) {
        this.snmpV3AuthProtocol = snmpV3AuthProtocol;
    }

    public String getSnmpV3PrivProtocol() {
        return snmpV3PrivProtocol;
    }

    public void setSnmpV3PrivProtocol(String snmpV3PrivProtocol) {
        this.snmpV3PrivProtocol = snmpV3PrivProtocol;
    }

    public Map<String, Object> getSnmpTrapNotification() {
        return snmpTrapNotification;
    }

    public void setSnmpTrapNotification(Map<String, Object> snmpTrapNotification) {
        this.snmpTrapNotification = snmpTrapNotification;
    }

    public Map<String, Object> getActions() {
        return actions;
    }

    public void setActions(Map<String, Object> actions) {
        this.actions = actions;
    }

    public Map<String, Object> getLikes() {
        return likes;
    }

    public void setLikes(Map<String, Object> likes) {
        this.likes = likes;
    }

    @Override
    public String getDataId() {
        return null;
    }

    @Override
    public String getContext() {
        return null;
    }

    @Override
    public String getType() {
        return null;
    }

    @Override
    public String getId() {
        return null;
    }

    @Override
    public String getName() {
        return null;
    }

    public Integer getMemberId() {
        return memberId;
    }

    public void setMemberId(Integer memberId) {
        this.memberId = memberId;
    }

    @Override
    public String toString() {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            return objectMapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
        }
        return "SnmpServiceModel{" +
                "dataId='" + dataId + '\'' +
                ", context='" + context + '\'' +
                ", type='" + type + '\'' +
                ", id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", snmpV1Enabled='" + snmpV1Enabled + '\'' +
                ", snmpV2CEnabled='" + snmpV2CEnabled + '\'' +
                ", snmpV3Enabled='" + snmpV3Enabled + '\'' +
                ", longPasswordEnabled='" + longPasswordEnabled + '\'' +
                ", readOnlyCommunity='" + readOnlyCommunity + '\'' +
                ", readWriteCommunity='" + readWriteCommunity + '\'' +
                ", snmpV3AuthProtocol='" + snmpV3AuthProtocol + '\'' +
                ", snmpV3PrivProtocol='" + snmpV3PrivProtocol + '\'' +
                ", snmpTrapNotification=" + snmpTrapNotification +
                ", actions=" + actions +
                ", likes=" + likes +
                '}';
    }
}
